# requess模块处理cookie相关的请求
# requests 提供了一个叫做session类,来实现客户端和服务端的会话保持
"""
使用方法:
    session = requests.session() # 实例化session对象
    response = session.get(url, headers, ...)
    response = session.post(url, data, ...)
"""
# requests处理cookie的方法:3.使用requests.session处理cookie
# 案例: 使用requests.session来完成北京论坛的登录
"""
1. 使用代码登录  ： 抓包 找到 登录的post请求的url地址,请求体参数
2. 创建session对象   session = requests.session()
3, 使用session对象 发送 post请求 进行登录,获取登录cookie
4. 再次去使用session对象请求 登录之后的页面，自动进行携带cookie 状态保持
"""
import requests


# 准备请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
}

# 登录的url地址
login_url = "http://www.jxmjc.com/login.php?"

data = {
    "forward": "",
    "jumpurl": "http://www.jxmjc.com/index.php",
    "step": "2",
    "lgt": "0",
    "pwuser": "itcast_test",
    "pwpwd": "123456",
    "hideid": "0",
    "submit": ""
}

# 1.创建session对象
session = requests.session()
# 使用session发送登录请求,获取登录之后的cookie
session.post(login_url, headers=headers, data=data)

# 登录之后访问的个人中心页面
my_url = "http://www.jxmjc.com/u.php"

# 再使用session对象请求登陆之后的页面
response = session.get(my_url, headers=headers)

# print(response.content.decode("GBK"))

# response.cookies返回的就是cookieJar类型的对象
print(response.cookies)

# requests中cookieJar的处理方法
# 将cookiejar转换成字典类型
cookie_dict = requests.utils.dict_from_cookiejar(response.cookies)
print(cookie_dict)
# 将字典类型转换成cookiejar类型
cookie_jar = requests.utils.cookiejar_from_dict(cookie_dict)
print(cookie_jar)
